﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.creditos.be.liclSolcred;
using com.creditos.be.liclUtil;

namespace liclSolcred.Views
{
    public class FormsManSolicitudPresenter : liclSolcred.Views.Viewer<IFormsManSolicitudView>
    {
        liclSolcredController oController = new liclSolcredController();
        public FormsManSolicitudPresenter()
        {
        
        }
        public void ListarProductos(ProductoBE oProductoBE)
        {
            try
            {
                List<ProductoBE> lstProductos = new List<ProductoBE>();
                lstProductos = oController.ListarProductos(oProductoBE);
                View.CargarProductos(lstProductos);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }


        public void Load(ProductoBE oProductoBE)
        {
            ListarProductos(oProductoBE);
            ListarAgencias();
            ListarParametros(1);//TIPO DOCUMENTO
            ListarParametros(4);//sexo
            ListarParametros(8);//nacionalidad
            ListarParametros(9);//grado de instruccion
            ListarParametros(5);//estado civil
            ListarParametros(447);//dependientes
            ListarParametros(6);//tipo vivienda
            ListarParametros(41);//Moneda
            ListarParametros(57);//correspondencia
            ListarParametros(236);//Desgravamen Prestamo
            ListarParametros(861);//regimen tributario
            ListarParametros(862);//tipo local
            ListarParametros(863);//tipo actividad
            ListarParametros(10);//cargo empleo
            ListarParametros(972);// Posicion Empleado
            ListarParametros(984);//tiempo empleo
            ListarParametros(535);//tipo cuota doble
            ListarParametros(906);//moneda credito solicitado
            ListarParametros(103);//tipo credito / prestamo
            ListarParametros(18);//tipo credito / prestamo
            ListarParametros(16);// Profesion
            ListarParametros(876);// Profesion
            ListarCiiuGrupo(new CiiuBE());
            ListarAgencias();
        }

        public void ListarSubProductos(ProductoBE oProductoBE)
        {
            try
            {
                List<SubProductoBE> lstSubProductos = new List<SubProductoBE>();
                lstSubProductos = oController.ListarSubProductos(oProductoBE);
                View.CargarSubProductos(lstSubProductos);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void ListarAgencias()
        {
            try
            {
                List<AgenciaBE> lstAgencias = new List<AgenciaBE>();
                lstAgencias = oController.ListarAgencia();
                View.CargarAgencias(lstAgencias);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void ListarParametros(int intCodigoTabla)
        {
            try
            {
                List<ParametroBE> lstParametro = new List<ParametroBE>();
                lstParametro = oController.ListarParametros(new ParametroBE { CodigoTabla = intCodigoTabla }); 
                View.CargarParametros(lstParametro);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void ListarTipoEvaluacion(ParametroBE oParametro)
        {
            try
            {
                List<ParametroBE> lstParametro = new List<ParametroBE>();
                lstParametro = oController.ListarTipoEvaluacion(oParametro);
                View.CargarTipoEvaluacion(lstParametro);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void ListarCampana(ParametroBE oParametro)
        {
            try
            {
                List<CampanaBE> lstParametro = new List<CampanaBE>();
                lstParametro = oController.ListarCampana(oParametro);
                View.CargarCampana(lstParametro);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void ListarCanalVenta(CanalVentaBE oParametro)
        {
            try
            {
                List<CanalVentaBE> lstParametro = new List<CanalVentaBE>();
                lstParametro = oController.ListarCanalVenta(oParametro);
                View.CargarCanalVenta(lstParametro);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void ListarCiiuGrupo(CiiuBE oParametro)
        {
            try
            {
                List<CiiuBE> lstParametro = new List<CiiuBE>();
                lstParametro = oController.ListarCiiuGrupo(oParametro);
                View.CargarCIIU(lstParametro);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ListarCliente(ClienteBE oCliente, int tipo)
        {
            try
            {
                List<ClienteBE> lstParametro = new List<ClienteBE>();
                lstParametro = oController.BuscarCliente(oCliente);
                if (tipo == 0)
                    View.CargarCliente(lstParametro);
                else
                    View.CargarNegocio(lstParametro);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void ListarCiiuActividad(CiiuBE oParametro)
        {
            try
            {
                List<CiiuBE> lstParametro = new List<CiiuBE>();
                lstParametro = oController.ListarCiiuGrupo(oParametro);
                View.CargarCIIUActividad(lstParametro);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void GuardarSolicitud(SolicitudBE oSolicitud)
        {
            try
            {
                View.ObtenerNumeroSolicitud(oController.GuardarSolicitud(oSolicitud));
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void BuscarSolicitudxNumero(SolicitudBE oSolicitud)
        {
            try
            {
                View.CargarSolicitud(oController.BuscarSolicitudxNumero(oSolicitud));
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public int SolicitudesRegistradas(ClienteBE oCliente)
        {
            int intSolicitudesRegistradas = 0;
            try
            {
                intSolicitudesRegistradas = oController.SolicitudesRegistradas(oCliente);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }

            return intSolicitudesRegistradas;
        }

        public void CalcularTasa(SolicitudBE oSolicitud)
        {
            try
            {
                View.CargarCaluloTasa(oController.CalcularTasa(oSolicitud));
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
    }
}
